package dichotomy.find.duplicate;
/**
 * @Date 2020/1/29
 * @author 王光浩
 * @Description 给定一个整型数组，数组的长度为n+1，数组中元素值在1-n之间，在数组中有且仅有一个重复的元素值
 *              这个元素值可能重复多次，找出这个元素值。（空间复杂度为O（1），时间复杂度小于O（n^2 ））
 * @Thinking 使用暴力法解决该题。
 *           复杂度分析：时间复杂度O（n^2），空间复杂度O（1）
 */
public class MyMethodOne {
	/**
	 * @Description 使用异或操作，判断两个数是否相等
	 * @param nums
	 * @return
	 */
    public int findDuplicate(int[] nums) {
        int len=nums.length;
        if(len==1)return  nums[0];
        for(int i=0;i<len-1;i++) {
        	for(int j=i+1;j<len;j++) {
        		if((nums[i]^nums[j])==0) //两个数异或为0，则这两个数相等
        			return nums[i];
        	}
        }
        return -1;
    }

}
